Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Search found 10 matches
Author Message
  Topic: Проблема... деревья в MySQL
Fally

Replies: 19
Views: 23562

PostForum: SQL и PHP :: SQL   Posted: Wed Dec 06, 2006 11:36 pm   Subject: Проблема... деревья в MySQL
Да я понимаю... но дело в том, что мне при разработке нельзя забывать и о быстродействии а вся проблема состоит к правильному подходу в создании правильного алгоритма для формирования массива..., т.е. получается что я создаю в цикле промежуточные массив куда записываю поочерёдно полученные из запроса данные и тут же вытаскивать из базы необходимую информацию о родителях, во вложенном цикле перебирать её и соединять в необходимый массив с данными полученными из предыдущего запроса.
Но как мне кажется, эта процедура будет очень ресурсоёмка, и будет "съедать" много системных ресурсов уже при 100 пользователях онлайн. НО эта процедура будет использоваться не так чато.. т.е. только при прокачивании умений... насколько оправдан такой подход к решению задачи? и есть ли более быстрые варианты?
  Topic: Проблема... деревья в MySQL
Fally

Replies: 19
Views: 23562

PostForum: SQL и PHP :: SQL   Posted: Tue Dec 05, 2006 8:40 pm   Subject: Проблема... деревья в MySQL
Выражаю глубокую признательность всем тем, кто помогал мне в этом топике, отдельная благодарность WingedFox, за может быть самый короткий, но точный ответ.
Но у меня появился и ещё один вопрос... можно ли средствами MySQL5 и РНР5 привести выбранные результаты к виду массива, приведенного мной в первом сообщении??
  Topic: Проблема... деревья в MySQL
Fally

Replies: 19
Views: 23562

PostForum: SQL и PHP :: SQL   Posted: Tue Dec 05, 2006 6:28 pm   Subject: Проблема... деревья в MySQL
да... согласно моему вопросу так... но это моя вина... не правильно я сформулировал... долдно быть так:
SkillID;SkillName;MaxLev;NeedLev;ParentID
1; Скилл 4; 10; 1;
1; Скилл 4; 5; 2;
1; Скилл 4; 8; 3;
1; Скилл 4; 10; 0;

...или это не возможно? просто мне хочется чтоб результатом было что-то похожее на массив представленный мною в первом посте.. или что-то на него подобное....
  Topic: Проблема... деревья в MySQL
Fally

Replies: 19
Views: 23562

PostForum: SQL и PHP :: SQL   Posted: Tue Dec 05, 2006 5:37 pm   Subject: Проблема... деревья в MySQL
это то я понимаю... но дело в том, что я пытался реализовать выборку одним запросом... но не получалось или же вложенный запрос возвращал не одно значение.
Суть такова:

SELECT SkillID, SkillName, MaxLev FROM `Skills` JOIN `Parents` ON Skills.SkillID=Parents.SkillID
... это выборка родителей всех существующих, но ещё нужно, чтобы в результирующую структуру данных так же чтоб результат был примерно такой:

SkillID; SkillName; MaxLev; ChildID;

ChildID - ID дочернего скилла.

Вся проблема состоит в правильном формировании запроса к БД.
  Topic: Проблема... деревья в MySQL
Fally

Replies: 19
Views: 23562

PostForum: SQL и PHP :: SQL   Posted: Tue Dec 05, 2006 5:02 pm   Subject: Проблема... деревья в MySQL
Ну у меня так БД и реализована... :)
Но как я уже написал в первом сообщении, у меня проблема в создании SQL-запроса к БД. Который мог бы извлекать из БД не только информацию о дочерних скиллах, но и информацию о родителях (их ID, и необходимый их уровень для использования данного скилла)
  Topic: Проблема... деревья в MySQL
Fally

Replies: 19
Views: 23562

PostForum: SQL и PHP :: SQL   Posted: Tue Dec 05, 2006 3:47 pm   Subject: Проблема... деревья в MySQL
Никита Косолaпов:
в проэкте я планирую сделать развитую систему скиллов, как в Ragnarok Online, т.е. есть n-ое количество скиллов. Некоторые из них можно прокачать в любое время, только при наличии очков для прокачивания, но есть и такие скиллы, которые можно прокачать только в том случае, если прокачено k-ое количество определённых скиллов, при этом каждый k-ый скилл необходимо прокачать разное количество раз.

Вот как это выглядит в текстовом виде.

1) Скилл №1; макс уровень 10; дополн. скиллов не требуется;
2) Скилл №2; макс уровень 5; дополн. скиллов не требуется;
3) Скилл №3; макс уровень 8; дополн. скиллов не требуется;
4) Скилл №4; макс уровень 10; необходимо прокачать Скилл №1 до 3 уровня, Скилл №2 до 2 уровня, Скилл №3 до 8 уровня.

WingedFox:
Спасибо за совет, но не могли бы Вы получше написать о коэффициентах? Вроде бы у меня промежуточная таблица Parents4Childs так и выглядела.
  Topic: Apache падает при выполнении запроса к MySQL
Fally

Replies: 2
Views: 6501

PostForum: SQL и PHP :: SQL   Posted: Tue Dec 05, 2006 12:08 am   Subject: Apache падает при выполнении запроса к MySQL
а не могли бы Вы привести более подробный код, т.к. по этим 5 строкам нельзя ничего сказать + какую функцию выполняет ваша библиотека.... возможно что именно в ней кроется причина вашей проблемы.
  Topic: Проблема... деревья в MySQL
Fally

Replies: 19
Views: 23562

PostForum: SQL и PHP :: SQL   Posted: Mon Dec 04, 2006 11:40 pm   Subject: Проблема... деревья в MySQL
Согласен с вами, в том что в приведённой вами статье хорошо описана реализация, но она мне не подходит.... т.к. у каждого узла в моём случае может быть n-ое количество родителей... инами словами nested sets здесь не подходит.... но я не спорю с вами, возможно с этим кто-то до меня уже сталкивался... и я изобретаю велосипед.. но я хочу сам разобраться с этой проблемой... для самообразования и самоссовершенствования..... но на деле всё оказалось не так легко... поэтому решил обратиться на форум за помощью...
  Topic: Проблема... деревья в MySQL
Fally

Replies: 19
Views: 23562

PostForum: SQL и PHP :: SQL   Posted: Sun Dec 03, 2006 4:59 pm   Subject: Проблема... деревья в MySQL
А как реализовать правильно таблицы? И чем они странноваты... аргументируйте пожалуйста своё сообщение.
  Topic: Проблема... деревья в MySQL
Fally

Replies: 19
Views: 23562

PostForum: SQL и PHP :: SQL   Posted: Sat Dec 02, 2006 10:49 am   Subject: Проблема... деревья в MySQL
Здравствуйте.
Я занимаюсь разработкой онлайн игры. И захотелось пооригинальничать. Я решил сделать древовидную систему скиллов, и так, что чтобы прокачать один скилл необходимо сначала прокачать n-нное число других скиллов, при этом каждый из родительских скиллов прокачивается разное кол-во раз. В БД я использовал две таблицы:
1) Skills
SkillID|SkillName|...|SkillHaveParents(BOOLEAN)|SkillCountParents
2) Parents4Childs:
ChildID|NeedParentLvl|ParentID

По моей задумке результирующий массив будет выглядеть таким образом:

$_Tree = array(
'[name]Скилл №1' => array(
'{Skill}ID' => "",
'{Skill}Name' => "",
'{Skill}CanUse' => "",
'{Skill}Type' => "",
'{Skill}Lvl' => "",
'{Skill}Desc' => "",
'{Skill}MaxLvl' => "",
'{Skill}Damage' => "" ...
 
Page 1 of 1 All times are GMT + 3 Hours
XML